﻿from PublicReference.base import *

# class 主动技能(主动技能):
#     def 等效CD(self, 武器类型):
#         if 武器类型 == '矛':
#             return round(self.CD / self.恢复 * 1.00, 1)

class 血狱君主技能0(被动技能):
    名称 = '鲜血融合'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    def 物理攻击力倍率进图(self, 武器类型):
        if self.等级<= 10:
            return round(1.00 + 0.01 * self.等级, 5)
        else:
            return round(0.90 + 0.02 *self.等级 , 5)
    def 加成倍率(self, 武器类型):
        if self.等级<= 10:
            return round(1.00 + 0.01 * self.等级, 5)
        else:
            return round(0.90 + 0.02 *self.等级 , 5)

class 血狱君主技能1(被动技能):
    名称 = '血之共鸣'
    所在等级 = 20
    等级上限 = 11
    基础等级 = 1
    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.08 + 0.02 * self.等级, 5)

class 血狱君主技能2(被动技能):
    名称 = '血狱之力'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.105 + 0.015 * self.等级, 5)

class 血狱君主技能3(被动技能):
    名称 = '鲜血之殇'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)

class 血狱君主技能4(被动技能):
    名称 = '卓越之力'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)

class 血狱君主技能5(主动技能):
    名称 = '血蝠之袭'
    所在等级= 15
    等级上限 =60
    基础等级 =46
    基础 = 3072.95454545 
    成长 = 347.62237762
    CD = 5.3
    TP成长 = 0.10
    TP上限 = 5

class 血狱君主技能6(主动技能):
    名称 = '血翼突击'
    所在等级= 15
    等级上限 =60
    基础等级 =46
    基础 = 2072.81818182 
    成长 = 234.10489510
    CD = 5.3
    TP成长 = 0.10
    TP上限 = 5

class 血狱君主技能7(主动技能):
    名称 = '鲜血长枪'
    所在等级= 20
    等级上限 =60
    基础等级 =43
    基础 = 2665.27272727
    成长 = 300.72727273
    CD =6.3 
    TP成长 = 0.10
    TP上限 = 5

class 血狱君主技能8(主动技能):
    名称 = '血蝠之舞'
    所在等级 =25
    等级上限 =60
    基础等级 =41
    基础 = 3293.18181818 
    成长 = 372.58741259
    CD = 6.3
    TP成长 = 0.10
    TP上限 = 5

class 血狱君主技能9(主动技能):
    名称 = '血腥狩猎'
    所在等级 =25
    等级上限 =60
    基础等级 =41
    基础 = 3980
    成长 = 450
    CD = 8.4
    TP成长 = 0.10
    TP上限 = 5


class 血狱君主技能10(主动技能):
    名称 = '狱血之犬'
    所在等级= 30
    等级上限 =60
    基础等级 =38
    基础 = 4162.87878788
    成长 = 470.76223776
    CD = 10.5
    TP成长 = 0.10
    TP上限 = 5

class 血狱君主技能11(主动技能):
    名称 = '狱血之牙'
    所在等级= 30
    等级上限 =60
    基础等级 =38
    基础 = 4801.42424242
    成长 = 542.13986014
    CD = 12.6
    TP成长 = 0.10
    TP上限 = 5
    额外倍率 = 0
    触发概率 = 0
    def 等效百分比(self, 武器类型):
        return (1 + self.额外倍率 * self.触发概率) * super().等效百分比(武器类型)

class 血狱君主技能12(主动技能):
    名称 = '血腥炼狱'
    所在等级= 35
    等级上限 =60
    基础等级 =36
    基础 = 8363.93939394 
    成长 = 945.41958042
    CD =18.9 
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.基础 *= 1.2
            self.成长 *= 1.2
            self.CD *= 0.9
        elif x == 1:
            self.基础 *= 1.29
            self.成长 *= 1.29
            self.CD *= 0.9

class 血狱君主技能13(主动技能):
    名称 = '噬魂囚笼'
    所在等级= 40
    等级上限 =60
    基础等级 =33
    基础 = 10481.81818182
    成长 = 1187.41258741
    CD =21 
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.基础 *= 1.2
            self.成长 *= 1.2
            self.CD *= 0.82
        elif x == 1:
            self.基础 *= 1.29
            self.成长 *= 1.29
            self.CD *= 0.82

class 血狱君主技能14(主动技能):
    名称 = '狱血之噬'
    所在等级= 45
    等级上限 =60
    基础等级 =31
    基础 = 20666.80303030 
    成长 = 2333.40209790
    CD =41.5 
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.基础 *= 1.2
            self.成长 *= 1.2
        elif x == 1:
            self.基础 *= 1.28
            self.成长 *= 1.28

class 血狱君主技能15(主动技能):
    名称 = '伯爵之歌'
    所在等级= 50
    等级上限 =60
    基础等级 =12
    基础 = 46649
    成长 = 14081
    CD = 152.3

class 血狱君主技能16(主动技能):
    名称 = '魔仆召唤：狱犬'
    所在等级= 60
    等级上限 =40
    基础等级 =23
    基础 = 17178.95454545 
    成长 = 1940.73776224
    CD =20.8 
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.基础 *= 1.13
            self.成长 *= 1.13
            self.CD *= 0.8
        elif x == 1:
            self.基础 *= 1.22
            self.成长 *= 1.22
            self.CD *= 0.8

class 血狱君主技能17(主动技能):
    名称 = '血翼绽放'
    所在等级= 70
    等级上限 =40
    基础等级 =18
    基础 = 22964.5
    成长 = 2592.73076923
    CD =52.5 
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.基础 *= 1.25
            self.成长 *= 1.25
        elif x == 1:
            self.基础 *= 1.33
            self.成长 *= 1.33

class 血狱君主技能18(主动技能):
    名称 = '地狱冥犬'
    所在等级= 75
    等级上限 =40
    基础等级 =16
    基础 = 27471.68181818
    成长 = 5213.58741259
    CD =31.5 
    是否有护石 = 1
    护石选项 = ['圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.基础 *= 1.29
            self.成长 *= 1.29
            self.CD *= 0.9

class 血狱君主技能19(主动技能):
    名称 = '死亡之握'
    所在等级= 80
    等级上限 =40
    基础等级 =13
    基础 = 54247.24242424
    成长 = 6124.78321678
    CD =52.5 
    是否有护石 = 1
    护石选项 = ['圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.基础 *= 1.34
            self.成长 *= 1.34

class 血狱君主技能20(主动技能):
    名称 = '血界彼岸'
    所在等级= 85
    等级上限 =40
    基础等级 =5
    基础 = 97231
    成长 = 29283
    CD = 189

class 血狱君主技能21(被动技能):
    名称 = '超卓之心'
    所在等级 = 95
    等级上限 = 11
    基础等级 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.045 + 0.005 * self.等级, 5)

class 血狱君主技能22(被动技能):
    名称 = '觉醒之抉择'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10 + 0.05 * self.等级, 5)

血狱君主技能列表 = []
i = 0
while i >= 0:
    try:
        exec('血狱君主技能列表.append(血狱君主技能'+str(i)+'())')
        i += 1
    except:
        i = -1

血狱君主技能序号 = dict()
for i in range(len(血狱君主技能列表)):
    血狱君主技能序号[血狱君主技能列表[i].名称] = i

血狱君主一觉序号 = 0
血狱君主二觉序号 = 0
血狱君主三觉序号 = 0
for i in 血狱君主技能列表:
    if i.所在等级 == 50:
        血狱君主一觉序号 = 血狱君主技能序号[i.名称]
    if i.所在等级 == 85:
        血狱君主二觉序号 = 血狱君主技能序号[i.名称]
    if i.所在等级 == 100:
        血狱君主三觉序号 = 血狱君主技能序号[i.名称]

血狱君主护石选项 = ['无']
for i in 血狱君主技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        血狱君主护石选项.append(i.名称)

血狱君主符文选项 = ['无']
for i in 血狱君主技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        血狱君主符文选项.append(i.名称)

class 血狱君主角色属性(角色属性):

    实际名称 = '血狱君主'
    角色 = '魔法师(男)'
    职业 = '血法师'

    武器选项 = ['矛']
    
    类型选择 = ['物理百分比']

    类型 = '物理百分比'
    防具类型 = '皮甲'
    防具精通属性 = ['力量']

    主BUFF = 1.97
   
    def __init__(self):
        基础属性输入(self)
        self.技能栏= deepcopy(血狱君主技能列表)
        self.技能序号= deepcopy(血狱君主技能序号)

class 血狱君主(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 血狱君主角色属性()
        self.角色属性A = 血狱君主角色属性()
        self.角色属性B = 血狱君主角色属性()
        self.一觉序号 = 血狱君主一觉序号
        self.二觉序号 = 血狱君主二觉序号
        self.三觉序号 = 血狱君主三觉序号
        self.护石选项 = deepcopy(血狱君主护石选项)
        self.符文选项 = deepcopy(血狱君主符文选项)

    def 界面(self):
        super().界面()
        self.狱血之牙概率=MyQComboBox(self.main_frame2)
        self.狱血之牙概率.resize(130,20)
        self.狱血之牙概率.move(320,450)
        for i in range(11):
            self.狱血之牙概率.addItem('歼灵灭魂矛：' + str(i * 10) + '%')
        self.狱血之牙概率.setCurrentIndex(1)

    def 输入属性(self, 属性, x = 0):
        super().输入属性(属性, x)
        属性.技能栏[属性.技能序号['狱血之牙']].触发概率 = round(self.狱血之牙概率.currentIndex() / 10, 2)
